/*****************************************************************************/
/* File: Drawable.cpp                                                        */
/* Author: Ozon                                                              */
/*                                                                           */
/* Description:																 */
/*	Class that is ascendant for all drawable objects.						 */
/*****************************************************************************/

#include "Drawable.h"
#include "Level.h"

CDrawable::CDrawable(void)
{
	m_bMarked = false;
}

CDrawable::~CDrawable(void)
{
}

void CDrawable::SetTransform(double dMatrix[16], const double dPos[3], const double dRot[12])
{
	dMatrix[0]=dRot[0];
	dMatrix[1]=dRot[4];
	dMatrix[2]=dRot[8];
	dMatrix[3]=0;
	dMatrix[4]=dRot[1];
	dMatrix[5]=dRot[5];
	dMatrix[6]=dRot[9];
	dMatrix[7]=0;
	dMatrix[8]=dRot[2];
	dMatrix[9]=dRot[6];
	dMatrix[10]=dRot[10];
	dMatrix[11]=0;
	dMatrix[12]=dPos[0];
	dMatrix[13]=dPos[1];
	dMatrix[14]=dPos[2];
	dMatrix[15]=1;
}

int CDrawable::SetupMatrices()
{
	double dMatrix[16];
	SetTransform(dMatrix, dBodyGetPosition(m_body), dBodyGetRotation(m_body));
	// glPushMatrix();
	glMultMatrixd (dMatrix);
	return 0;
}
